#include "../include/any.hpp"
#include <any>

class Test
{
public:
    Test()
    {
        std::cout << "构造" << std::endl;
    }
    Test(const Test& t)
    {
        std::cout << "拷贝" << std::endl;
    }
    ~Test()
    {
        std::cout << "析构" << std::endl;
    }
};

int main()
{
    // Muduo::Any a;
    // {
    //     Test t;
    //     a = t;
    // }
    // a = 10;
    // int* pa = a.Get<int>();
    // std::cout << *pa << std::endl;
    // a = std::string("hello");
    // std::string* ps = a.Get<std::string>();
    // std::cout << *ps << std::endl;
    // Muduo::Any b;
    // b = a;
    // std::string* pstr = a.Get<std::string>();
    // std::cout << *pstr << std::endl;

    std::any a;
    a = 10;
    int* pa = std::any_cast<int>(&a);
    std::cout << *pa << std::endl;
    a=std::string("hello");
    std::string* ps = std::any_cast<std::string>(&a);
    std::cout << *ps << std::endl;
    return 0;
}
